+Mon Jul 27 03:11:20 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum
+ values are looked up.
+
+ * gtk/gtktypeutils.h:
+ * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and
+ gtk_type_enums_find_value to lookup enum values.
+
+ * gtk/gtkctree.h:
+ * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to
+ GtkCTreeExpansionType. fixed signal creations to pass the enum
+ types not just the base type GTK_TYPE_ENUM.
+
+ * gtk/gtkclist.h:
+ * gtk/gtkclist.c: fixed signal creations to pass the real enum
+ types not just the base type GTK_TYPE_ENUM.
+
Sun Jul 26 14:50:07 1998 Stefan Jeske <stefan@gtk.org>
* gtk/testgtk.c :
+Mon Jul 27 03:11:20 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum
+ values are looked up.
+
+ * gtk/gtktypeutils.h:
+ * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and
+ gtk_type_enums_find_value to lookup enum values.
+
+ * gtk/gtkctree.h:
+ * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to
+ GtkCTreeExpansionType. fixed signal creations to pass the enum
+ types not just the base type GTK_TYPE_ENUM.
+
+ * gtk/gtkclist.h:
+ * gtk/gtkclist.c: fixed signal creations to pass the real enum
+ types not just the base type GTK_TYPE_ENUM.
+
Sun Jul 26 14:50:07 1998 Stefan Jeske <stefan@gtk.org>
* gtk/testgtk.c :
+Mon Jul 27 03:11:20 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum
+ values are looked up.
+
+ * gtk/gtktypeutils.h:
+ * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and
+ gtk_type_enums_find_value to lookup enum values.
+
+ * gtk/gtkctree.h:
+ * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to
+ GtkCTreeExpansionType. fixed signal creations to pass the enum
+ types not just the base type GTK_TYPE_ENUM.
+
+ * gtk/gtkclist.h:
+ * gtk/gtkclist.c: fixed signal creations to pass the real enum
+ types not just the base type GTK_TYPE_ENUM.
+
Sun Jul 26 14:50:07 1998 Stefan Jeske <stefan@gtk.org>
* gtk/testgtk.c :
+Mon Jul 27 03:11:20 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum
+ values are looked up.
+
+ * gtk/gtktypeutils.h:
+ * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and
+ gtk_type_enums_find_value to lookup enum values.
+
+ * gtk/gtkctree.h:
+ * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to
+ GtkCTreeExpansionType. fixed signal creations to pass the enum
+ types not just the base type GTK_TYPE_ENUM.
+
+ * gtk/gtkclist.h:
+ * gtk/gtkclist.c: fixed signal creations to pass the real enum
+ types not just the base type GTK_TYPE_ENUM.
+
Sun Jul 26 14:50:07 1998 Stefan Jeske <stefan@gtk.org>
* gtk/testgtk.c :
+Mon Jul 27 03:11:20 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum
+ values are looked up.
+
+ * gtk/gtktypeutils.h:
+ * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and
+ gtk_type_enums_find_value to lookup enum values.
+
+ * gtk/gtkctree.h:
+ * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to
+ GtkCTreeExpansionType. fixed signal creations to pass the enum
+ types not just the base type GTK_TYPE_ENUM.
+
+ * gtk/gtkclist.h:
+ * gtk/gtkclist.c: fixed signal creations to pass the real enum
+ types not just the base type GTK_TYPE_ENUM.
+
Sun Jul 26 14:50:07 1998 Stefan Jeske <stefan@gtk.org>
* gtk/testgtk.c :
+Mon Jul 27 03:11:20 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum
+ values are looked up.
+
+ * gtk/gtktypeutils.h:
+ * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and
+ gtk_type_enums_find_value to lookup enum values.
+
+ * gtk/gtkctree.h:
+ * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to
+ GtkCTreeExpansionType. fixed signal creations to pass the enum
+ types not just the base type GTK_TYPE_ENUM.
+
+ * gtk/gtkclist.h:
+ * gtk/gtkclist.c: fixed signal creations to pass the real enum
+ types not just the base type GTK_TYPE_ENUM.
+
Sun Jul 26 14:50:07 1998 Stefan Jeske <stefan@gtk.org>
* gtk/testgtk.c :
+Mon Jul 27 03:11:20 1998 Tim Janik <timj@gtk.org>
+
+ * gtk/gtkbindings.c (binding_compose_params): fixup, so that enum
+ values are looked up.
+
+ * gtk/gtktypeutils.h:
+ * gtk/gtktypeutils.c: new functions gtk_type_flags_find_value and
+ gtk_type_enums_find_value to lookup enum values.
+
+ * gtk/gtkctree.h:
+ * gtk/gtkctree.c: change enum name from GtkCTreeExpansion to
+ GtkCTreeExpansionType. fixed signal creations to pass the enum
+ types not just the base type GTK_TYPE_ENUM.
+
+ * gtk/gtkclist.h:
+ * gtk/gtkclist.c: fixed signal creations to pass the real enum
+ types not just the base type GTK_TYPE_ENUM.
+
Sun Jul 26 14:50:07 1998 Stefan Jeske <stefan@gtk.org>
* gtk/testgtk.c :
(tabbed GTK_CTREE_LINES_TABBED)
(none GTK_CTREE_LINES_NONE))
-(define-enum GtkCTreeExpansion
+(define-enum GtkCTreeExpansionType
(expand GTK_CTREE_EXPANSION_EXPAND)
(expand-recursive GTK_CTREE_EXPANSION_EXPAND_RECURSIVE)
(collapse GTK_CTREE_EXPANSION_COLLAPSE)
(param_ftype == GTK_TYPE_ENUM ||
param_ftype == GTK_TYPE_FLAGS))
{
- /* FIXME: we need identifier lookups here */
- valid = FALSE;
+ GtkEnumValue *value;
+
+ value = gtk_type_enum_find_value (params->type, args->d.string_data);
+ if (value)
+ GTK_VALUE_ENUM (*params) = value->value;
+ else
+ valid = FALSE;
}
else
valid = FALSE;
GTK_SIGNAL_OFFSET (GtkCListClass, extend_selection),
gtk_marshal_NONE__ENUM_FLOAT_BOOL,
GTK_TYPE_NONE, 3,
- GTK_TYPE_ENUM, GTK_TYPE_FLOAT, GTK_TYPE_BOOL);
+ GTK_TYPE_SCROLL_TYPE, GTK_TYPE_FLOAT, GTK_TYPE_BOOL);
clist_signals[SCROLL_VERTICAL] =
gtk_signal_new ("scroll_vertical",
GTK_RUN_LAST | GTK_RUN_ACTION,
object_class->type,
GTK_SIGNAL_OFFSET (GtkCListClass, scroll_vertical),
gtk_marshal_NONE__ENUM_FLOAT,
- GTK_TYPE_NONE, 2, GTK_TYPE_ENUM, GTK_TYPE_FLOAT);
+ GTK_TYPE_NONE, 2, GTK_TYPE_SCROLL_TYPE, GTK_TYPE_FLOAT);
clist_signals[SCROLL_HORIZONTAL] =
gtk_signal_new ("scroll_horizontal",
GTK_RUN_LAST | GTK_RUN_ACTION,
object_class->type,
GTK_SIGNAL_OFFSET (GtkCListClass, scroll_horizontal),
gtk_marshal_NONE__ENUM_FLOAT,
- GTK_TYPE_NONE, 2, GTK_TYPE_ENUM, GTK_TYPE_FLOAT);
+ GTK_TYPE_NONE, 2, GTK_TYPE_SCROLL_TYPE, GTK_TYPE_FLOAT);
clist_signals[ABORT_COLUMN_RESIZE] =
gtk_signal_new ("abort_column_resize",
GTK_RUN_LAST | GTK_RUN_ACTION,
GList *node,
gpointer data);
static void change_focus_row_expansion (GtkCTree *ctree,
- GtkCTreeExpansion expansion);
+ GtkCTreeExpansionType expansion);
static void real_select_row (GtkCList *clist,
gint row,
gint column,
gpointer data);
typedef void (*GtkCTreeSignal4) (GtkObject *object,
- GtkCTreeExpansion arg1,
+ GtkCTreeExpansionType arg1,
gpointer data);
GTK_SIGNAL_OFFSET (GtkCTreeClass,
change_focus_row_expansion),
gtk_marshal_NONE__ENUM,
- GTK_TYPE_NONE, 1, GTK_TYPE_ENUM);
+ GTK_TYPE_NONE, 1, GTK_TYPE_C_TREE_EXPANSION_TYPE);
gtk_object_class_add_signals (object_class, ctree_signals, LAST_SIGNAL);
static void
change_focus_row_expansion (GtkCTree *ctree,
- GtkCTreeExpansion action)
+ GtkCTreeExpansionType action)
{
GtkCList *clist;
GList *node;
GTK_CTREE_EXPANSION_COLLAPSE_RECURSIVE,
GTK_CTREE_EXPANSION_TOGGLE,
GTK_CTREE_EXPANSION_TOGGLE_RECURSIVE
-} GtkCTreeExpansion;
+} GtkCTreeExpansionType;
typedef struct _GtkCTree GtkCTree;
typedef struct _GtkCTreeClass GtkCTreeClass;
GList *new_parent,
GList *new_sibling);
void (*change_focus_row_expansion) (GtkCTree *ctree,
- GtkCTreeExpansion action);
+ GtkCTreeExpansionType action);
};
struct _GtkCTreeRow
extern GtkType GTK_TYPE_CELL_TYPE;
extern GtkType GTK_TYPE_C_TREE_POS;
extern GtkType GTK_TYPE_C_TREE_LINE_STYLE;
-extern GtkType GTK_TYPE_C_TREE_EXPANSION;
+extern GtkType GTK_TYPE_C_TREE_EXPANSION_TYPE;
extern GtkType GTK_TYPE_DEBUG_FLAG;
extern GtkType GTK_TYPE_ACCEL_FLAGS;
extern GtkType GTK_TYPE_ARROW_TYPE;
{ GTK_CTREE_LINES_NONE, "GTK_CTREE_LINES_NONE", "none" },
{ 0, NULL, NULL }
};
-static GtkEnumValue _gtk_c_tree_expansion_values[] = {
+static GtkEnumValue _gtk_c_tree_expansion_type_values[] = {
{ GTK_CTREE_EXPANSION_EXPAND, "GTK_CTREE_EXPANSION_EXPAND", "expand" },
{ GTK_CTREE_EXPANSION_EXPAND_RECURSIVE, "GTK_CTREE_EXPANSION_EXPAND_RECURSIVE", "expand-recursive" },
{ GTK_CTREE_EXPANSION_COLLAPSE, "GTK_CTREE_EXPANSION_COLLAPSE", "collapse" },
GTK_TYPE_ENUM, _gtk_c_tree_pos_values },
{ "GtkCTreeLineStyle", >K_TYPE_C_TREE_LINE_STYLE,
GTK_TYPE_ENUM, _gtk_c_tree_line_style_values },
- { "GtkCTreeExpansion", >K_TYPE_C_TREE_EXPANSION,
- GTK_TYPE_ENUM, _gtk_c_tree_expansion_values },
+ { "GtkCTreeExpansionType", >K_TYPE_C_TREE_EXPANSION_TYPE,
+ GTK_TYPE_ENUM, _gtk_c_tree_expansion_type_values },
{ "GtkDebugFlag", >K_TYPE_DEBUG_FLAG,
GTK_TYPE_FLAGS, _gtk_debug_flag_values },
{ "GtkAccelFlags", >K_TYPE_ACCEL_FLAGS,
GtkType GTK_TYPE_CELL_TYPE = 0;
GtkType GTK_TYPE_C_TREE_POS = 0;
GtkType GTK_TYPE_C_TREE_LINE_STYLE = 0;
-GtkType GTK_TYPE_C_TREE_EXPANSION = 0;
+GtkType GTK_TYPE_C_TREE_EXPANSION_TYPE = 0;
GtkType GTK_TYPE_DEBUG_FLAG = 0;
GtkType GTK_TYPE_ACCEL_FLAGS = 0;
GtkType GTK_TYPE_ARROW_TYPE = 0;
return (GtkEnumValue*) node->type_info.reserved_1;
}
- g_warning ("gtk_type_enum_get_values(): type `%s' is not derived from `enum' or `flags'",
+ g_warning ("gtk_type_enum_get_values(): type `%s' is not derived from `GtkEnum' or `GtkFlags'",
gtk_type_name (enum_type));
return NULL;
return gtk_type_enum_get_values (flags_type);
}
+GtkEnumValue*
+gtk_type_enum_find_value (GtkType enum_type,
+ const gchar *value_name)
+{
+ g_return_val_if_fail (value_name != NULL, NULL);
+
+ if (GTK_FUNDAMENTAL_TYPE (enum_type) == GTK_TYPE_ENUM ||
+ GTK_FUNDAMENTAL_TYPE (enum_type) == GTK_TYPE_FLAGS)
+ {
+ GtkEnumValue *vals;
+
+ vals = gtk_type_enum_get_values (enum_type);
+ while (vals)
+ {
+ if (strcmp (vals->value_name, value_name) == 0 ||
+ strcmp (vals->value_nick, value_name) == 0)
+ return vals;
+ vals++;
+ }
+ }
+ else
+ g_warning ("gtk_type_enum_find_value(): type `%s' is not derived from `GtkEnum' or `GtkFlags'",
+ gtk_type_name (enum_type));
+
+ return NULL;
+}
+
+GtkFlagValue*
+gtk_type_flags_find_value (GtkType flag_type,
+ const gchar *value_name)
+{
+ g_return_val_if_fail (value_name != NULL, NULL);
+
+ return gtk_type_enum_find_value (flag_type, value_name);
+}
+
static inline GtkType
gtk_type_register_intern (gchar *name,
GtkType parent,
GtkEnumValue *values);
GtkType gtk_type_register_flags (const gchar *type_name,
GtkFlagValue *values);
-GtkEnumValue* gtk_type_enum_get_values (GtkType enum_type);
-GtkFlagValue* gtk_type_flags_get_values (GtkType flags_type);
-
+GtkEnumValue* gtk_type_enum_get_values (GtkType enum_type);
+GtkFlagValue* gtk_type_flags_get_values (GtkType flags_type);
+GtkEnumValue* gtk_type_enum_find_value (GtkType enum_type,
+ const gchar *value_name);
+GtkFlagValue* gtk_type_flags_find_value (GtkType flag_type,
+ const gchar *value_name);
#ifdef __cplusplus
}
class "GtkButton" binding "test1" # implicit : rc
class "GtkButton" binding : highest "test2" # override "rc" priority
+binding "clist-test"
+{
+ bind "j" {
+ "scroll-vertical" (step-backward, 0.0)
+ }
+ bind "k" {
+ "scroll-vertical" (step-forward, 0.0)
+ }
+}
+
+class "GtkCList" binding "clist-test"
+
class "GtkButton" binding "test1" # implicit : rc
class "GtkButton" binding : highest "test2" # override "rc" priority
+binding "clist-test"
+{
+ bind "j" {
+ "scroll-vertical" (step-backward, 0.0)
+ }
+ bind "k" {
+ "scroll-vertical" (step-forward, 0.0)
+ }
+}
+
+class "GtkCList" binding "clist-test"
+